home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Whiteline: delta
/
whiteline CD Series - delta.iso
/
systems
/
emulate
/
speccy
/
speccy.txt
< prev
next >
Wrap
Text File
|
1995-11-25
|
9KB
|
230 lines
SPECCY
Der ZX-Spectrum-Emulator fuer den Atari ST
Copyright (c) 1990 Hansjoerg Oppermann
Autor: Hansjoerg Oppermann
Rennelbergstr. 15
3300 Braunschweig
ZX Spectrum ist ein eingetragenes Warenzeichen der
Firma Sinclair Research Ltd.
---
Unter der Voraussetzung, dass die Dateien
SPECCY.PRG, SPECCY.RSC,
SPECTRAN.PRG, SPECTRAN.RSC, SPECTRAN.XXX
READ_ROM.TOS, SAVE_ROM.XXX, SENDPROG.TTP
und SPECCY.TXT
zusammen und unveraendert kopiert werden, darf SPECCY fuer
private Anwender frei kopiert und benutzt werden.
Kommerzielle Nutzung in jeder Form (dies schliesst auch
den Vertrieb ueber Public-Domain-Sammeldisketten oder
aehnliches ein) ist NICHT gestattet.
---
Nun doch! Diese Projekt laeuft schon seit ueber drei Jahren.
Ich konnte mich lange nicht entschliessen den Emulator in
irgend einer Weise zu beenden. Er war eher eine Studie als
ein richtiges Produkt. Ich hatte viele Versionen angefangen
und doch nicht beendet; es gab ihn als GEM-Programm, als
Entwicklungumgebung mit Monitor und Disassembler und wie
nun, als Standalone ohne ROM und ohne viel Schnickschnack.
Als grosse Hilfe erwies sich der CPM80-Emulator von
SoftDesign Muenchen. Dort habe ich viele Anregungen
gefunden. Als ein Problem erwies sich das Behandeln der
Interrupts und die Darstellung des Bildschirms, konnte aber
(auf Kosten der Geschwindigkeit) geloest werden.
Nun, was kann der Emulator? Er verhaelt sich wie ein
normaler Sinclair ZX-Spectum mit 48 KB RAM, einem Kemston
Joystick-Interface und ohne Drucker. Die Tastatur ist zu
einer Rubbel-Gummi-Tastatur zurueck entwickelt worden. Die
linke Shift-Taste ist CAPS-Shift, die rechte SYMBOL-Shift
und die grosse Space-Taste nun BREAK-SPACE. Wer damals
keinen Spectum besessen hat, wird mit diesen Hinweisen nicht
viel anfangen koenne. Er sollte sich an einen alten
Spectrum-User wenden und dort die noetigen Hilfen holen.
SPECCY laeuft nur in High- und Low-Resolution. Weiter
Aufloesungen oder Bildschirmformate werden nicht
unterstuetzt. Im Monochrombetrieb wird die Farbe in
Graustufen dargestellt.
Die Geschindigkeit ist nicht berauschend. Leider!
Noch eins, da das Spectum-ROM dem Copyright unterliegt, ist
es NICHT im Emulator enthalten. Wenn ihr den Emulator also
benutzen wollt, muesst ihr euch erst einmal ein Spectrum-ROM
besorgen. Es liegt ein Programm bei, welches dieses Problem
einfach loest. Ihr braucht einen Spectrum mit Interface I,
ein Null-Modem-Kabel zwischen Spectum und Atari ST und los
gehts. Das wie wird weiter unten beschrieben.
Um Programme des Spectums zu nutzen, liegt ein
Transferprogramm fuer den Atari ST und dem Spectrum bei. Die
Benutzung der beiden sollte keine Probleme aufwerfen.
Selbst Baudraten bis 19 KiloBaud sind moeglich.
Beim Starten des Emulators erscheint eine Dialog-Box. Hier
koennen einige Parameter veraendert werden:
1. Anzahl der Interrupts pro Sekunde. Wie oft ein Z80-
Interrupt erzeugt wird. Hiervon ist die
Tastaturroutine des Spectrum abhaengig. Durch
Verringern der Interrupts kann die Geschwindigkeit
gesteigert werden.
2. Anzahl der Bildschirm-Refreshs pro Sekunde. Die
Darstellung des Bildschirm wird periodisch erneuert.
Es werden aber nur die Stellen bearbeitet, die sie
geaendert haben. Durch Heruntersetzen der Anzahl kann
wiederum die Geschwindigkeit gesteigert werden.
3. Flash. Die Blinkgeschwindigkeit, z.B. des Cursor steht
in Abhaengigkeit zur Bildschirm-Refresh-Frequenz.
4. Beeper. Schaltet die Tonausgabe ein und aus. Es
existiert einmal ein Emulation fuer die im Rom
eingebaute Ton-Routine und auch die von den meisten
Programmen genutzte Moeglichkeit direkt ueber OUT-
Befehle. Da die Geschwindigkeit des Emulators nicht
die seines Orginals (jedenfalls auf einem normalen ST)
erreicht, sind die Toene oder Geraeusche ueber den OUT-
Befehl ein wenig zu tief. Um einen davon zu befreien,
gibt es diesen Schalter.
5. Speecy. Mit diesem Button wird der Emulator gestartet.
Es wird kein Reset ausgefuert. Das heisst, dass man an
der Stelle, wo man den Emulator ueber UNDO verlassen
hat, weiter das Programm fortsetzt.
6. Reset. Zuruecksetzen und Starten des Emulators. Die
Register des Z80 werden geloescht und ein RST 0
ausgefuehrt (Kaltstart).
7. Exit. Verlassen des SPECCY. Tschuess.
Der Emulator kann jederzeit durch die Taste UNDO verlassen
werden, man kehrt wieder zu Start-Dialog-Box zurueck. Weiter
sind einige Tasten der Atari-Tastatur mit Funktionen
belegt, die das Arbeiten mit dem Spectrum erleichtern
sollen. Die Cursor-Tasten funktionieren ohne das man zwei
Finger quaelen muss, Insert wie EDIT und das DELETE des
Spectrums liegt auf Backspace (wo es auch hingehoert).
Beim Laden ohne Dateinamenangabe erscheint ein
Fileselectorbox, wo beliebige Spectrum-Dateien angewaehlt
werden koennen.
Fuer Schwerenoeter: ein Spectrum-Datei hat folgendes Format:
17 Bytes Spectrum-Tape-Header
1 Byte Dateitype
2 - 11 Byte Dateiname (10 Zeichen)
12 - 17 Byte Laengen- und Addressangaben
anschliessent den Inhalt der Datei
Da ein Dateiname des Spectrums 10 Zeichen lang seinen und
auch Zeichen enthalten kann, die beim Atari nicht in
Dateinamen erscheinen duerfen, musste hier ein Einschnitt
geschehen. Der Name im Spectrum-Tape-Header wird ohne
Sonderzeichen, bis max. 8 Zeichen als Name fuer die
Spectrum-Datei verwendet. (Punktum!)
Nun. Übertragung des Spectrum-ROMs und der Spectrum-
Programme. Der erste Schritt ist ein geeignetes Null-Modem-
Kabel zu bekommen. Wer hat der hat und wer nicht muss noch.
Der zweite Schritt ist das Übertragen der Programme zum
Übertragen von Daten auf der Spectrum-Seite zur Atari-Seite
(Puh).
Dazu stellt man auf dem Atari die RS-232-Schnittstelle auf
9600 Baud, 8 Daten-Bit, 1 Stop-Bit ein und schaltet XON-
XOFF aus und RTS-CTS ein. Dann tippt man auf dem Spectrum
folgende Zeilen ein:
10 FORMAT "b";9600
20 LOAD *"b"
(Diese Zeilen stellen einen binaren Stream mit 9600 Baud
zur Verfuegung und versucht ein Programm (BASIC-HIC) ueber
diese Stream zu laden)
Mit RUN dieses Programm starten. Nun auf dem Atari das
Program SENDPROG.TTP mit dem Parameter SAVE_ROM.XXX
starten. Wenn alles gut gegangen ist, wird auf dem Spectrum
nun ein kleines BASIC-Programm liegen. Diese kopiert das
Spectrum-ROM in einen hoeheren Bereich im Spectrum und
schickt es dann auf die Reise zum Atari.
Hier noch ein wichtiger Satz zum Spectrum-ROM:
Das Spectrum-ROM muss ein Orginal Sinclair ZX-Spectrum
ROM sein, also kein in irgendeinerweise geaendertes.
Erklaerung:
Da das ROM im Speccy noch gepatch werden muss und ich
nur das Orginal beruecksichtige, werden alle
Zuwiderhandlungen leider zum Misserfolg dieser Mission
fuehren.
Nun weiter. Also startet das Programm (SAVE_ROM) auf dem
Spectrum und wartet ein Weilchen, denn BASIC ist kein
Rennpferdchen. Die Zeit laesst sich nutzen und auf dem Atari
das Programm READ_ROM.PRG starten. Zu Ende ist diese
Prozedur, wenn beide Programme sich beendet haben und auf
dem Atari eine Datei namens SPECCY.ROM vorliegt.
Um das erste Mal den Emulator zu Starten, kopieren sie die
Dateien SPECCY.PRG, SPECCY.RSC und SPECCY.ROM in einem Pfad
und starten das Programm SPECCY.PRG.
---
Na, alles klar? (Wenn nicht, weiss ich's auch nicht. Bei mir
funktionierts)
Nun fehlt noch die Übertragung von Daten. Dazu gibt es das
Programm SPECTRAN(S). Nochmals den BASIC-Zwei-Zeiler von
oben auf dem Spectrum eingetippt, Starten (RUN) des
Spectrums und starten des Programms SENDPROG.TTP mit
SPECTRAN.XXX. Das Programm, welches nun im Spectrum liegen
sollte, solltet Ihr am Besten nun sichern.
Mit dem Programm SPECTRAN auf dem Atari und auf dem
Spectrum koennen nun Daten vom Spectrum zum Atari gesendet
werden. Beide muessen auf die gleiche Baudrate eingestellt
werden, an sonsten gibt es wohl keine Probleme.
Bisher werden nur Daten, die auf Kassetten vorliegen und
nicht groesser als ca. 36 KByte sind, uebertragen. Auch nur
in einer Richtung! Dies ist eine Grenze, die noch zu
Beseitigen ist. Wer sich daran versuchen will, kann von mir
die noetigen Daten und Sourcen (C) der Atari-Seite bekommen.
Puh! Nun ist alles gesagt, was zu sagen ich in der Lage
bin. Wahrscheinlich wimmelt dieser Text vor
Rechtschreibfehlern, die unterliegen aber meinem Copyright
(Ich habe auch immer viel Spass beim Lesen meiner
schriftlichen Erguesse).
3.7.90 Viel Spass!